package org.opens.lambda.collector;

import org.junit.Test;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class ArraysToStream {

    /**
     * 功能:
     *      使用Arrays将int[]类型的参数转换为List<Integer>.
     * 说明:
     *      1. 如果不使用boxed进行装箱的话会报错.
     *      2. 这个的用途为: spring mvc接受int[]参数后转换为List<Integer>.
     */
    @Test
    public void test1() {
        int[] arr = {1, 2, 3};
        List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
        System.out.println(list);
    }

    /**
     * 功能:
     *      使用mapToInt将Stream-> IntStream.
     * 说明:
     *      1. 这样转换后可以使用IntStream的一些方法, sum等.
     */
    @Test
    public void test2() {
        Integer[] arr = {1, 2, 3};
        IntStream intStream = Arrays.stream(arr).mapToInt(Integer::intValue);
        System.out.println(intStream.sum());
    }

}
